package search;
//https://leetcode.cn/leetbook/read/illustration-of-algorithm/50xofm/
//仓库管理员以数组 stock 形式记录商品库存表。stock[i] 表示商品 id，可能存在重复。原库存表按商品 id 升序排列。
// 现因突发情况需要进行商品紧急调拨，管理员将这批商品 id 提前依次整理至库存表最后。
// 请你找到并返回库存表中编号的 最小的元素 以便及时记录本次调拨。
public class LCR_128库存管理1 {
    //二分法
    class Solution {
        public int stockManagement(int[] stock) {
            if(stock.length == 1) return stock[0];
            int i = 0, j = stock.length - 1;
            while (i < j){
                int m = (i +j) / 2;
                if(stock[m] > stock[j]) i = m+1;
                else if (stock[m] < stock[j]) j = m;
                else j--;
            }
            return stock[i];
        }
    }
    //找突变点
    class Solution2 {
        public int minArray(int[] numbers) {
            for(int i = 0;i < numbers.length - 1;i++)
                if(numbers[i] > numbers[i + 1]) return numbers[i +1];
            return numbers[0];
        }
    }
    //暴力
    class Solution3 {
        public int stockManagement(int[] stock) {
            if(stock.length == 1) return stock[0];
            int min = Integer.MAX_VALUE;
            for(int i : stock){
                if(min > i)
                    min = i;
            }
            return min;
        }
    }
}
